import request from "@/utils/request";

const AUTH_BASE_URL = "/api/admin";

const AuthAPI = {
  /** 密码登录接口*/
  login(data: LoginFormData) {
    const formData = new FormData();
    formData.append("username", data.username);
    formData.append("password", data.password);
    formData.append("captchaKey", data.captchaKey);
    formData.append("captcha", data.captcha);
    return request<any, LoginResult>({
      url: `${AUTH_BASE_URL}/openPlatform/auth/login`,
      method: "post",
      data: formData,
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  },
  /** 手机登录接口*/
  loginByMobile(data: LoginFormData) {
    return request<any, LoginResult>({
      url: `${AUTH_BASE_URL}/openPlatform/auth/loginByMobile`,
      method: "post",
      data: data,
    });
  },
  /** 密码登录接口*/
  getAppList(data: AppFormData) {
    return request<any, AppListResult>({
      url: `${AUTH_BASE_URL}/openPlatform/app/getAppList`,
      method: "post",
      data: data,
    });
  },
  /** 创建应用*/
  createApp(data: createAppFormData) {
    return request({
      url: `${AUTH_BASE_URL}/openPlatform/app/createApp`,
      method: "post",
      data: data,
    });
  },
  /** 选择APP登录 */
  selectApp(data: selectAppFormData) {
    return request<any, LoginResult>({
      url: `${AUTH_BASE_URL}/openPlatform/app/selectApp`,
      method: "post",
      data: data,
    });
  },

  /** 关联店铺*/
  getRelateShop(data: AppFormData) {
    return request<any, RelateShopResult>({
      url: `${AUTH_BASE_URL}/openPlatform/app/getRelateShop`,
      method: "post",
      data: data,
    });
  },
  /** 注销登录接口 */
  deleteApp(data: selectAppFormData) {
    return request({
      url: `${AUTH_BASE_URL}/openPlatform/app/deleteApp`,
      method: "post",
      data: data,
    });
  },

  /** 注销登录接口 */
  logout() {
    return request({
      url: `${AUTH_BASE_URL}/auth/logout`,
      method: "post",
    });
  },

  /** 获取验证码接口*/
  getCaptcha() {
    return request<any, CaptchaInfo>({
      url: `${AUTH_BASE_URL}/auth/captcha`,
      method: "get",
    });
  },
  /** 获取登录页图片*/
  loginPageConfig() {
    return request<any, loginPageConfigResult>({
      url: `${AUTH_BASE_URL}/auth/loginPageConfig`,
      method: "get",
    });
  },
  /** 重置密码获取验证码*/
  sendCodeByForget(data: sendCodeByForgetFormData) {
    return request<any, CaptchaInfo>({
      url: `${AUTH_BASE_URL}/auth/sendCodeByForget`,
      method: "post",
      data: data,
    });
  },
  /** 修改密码*/
  resetPassword(data: resetPasswordFormData) {
    return request({
      url: `${AUTH_BASE_URL}/openPlatform/auth/resetPassword`,
      method: "post",
      data: data,
    });
  },
  /** 获取验证码接口*/
  getMobileCode(data: LoginFormData) {
    const formData = new FormData();
    formData.append("captchaKey", data.captchaKey);
    formData.append("captcha", data.captcha);
    formData.append("mobile", data.mobile);
    return request({
      url: `${AUTH_BASE_URL}/appAuth/sendCode`,
      method: "post",
      data: formData,
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  },
};

export default AuthAPI;

/** 登录表单数据 */
export interface LoginFormData {
  /** 用户名 */
  username: string;
  /** 密码 */
  password: string;
  /** 验证码缓存key */
  captchaKey: string;
  /** 图片验证码 */
  captcha: string;
  /** 手机验证码 */
  code: string;
  /** 手机号 */
  mobile: string;
}

/** 登录响应 */
export interface LoginResult {
  /** 访问令牌 */
  token: string;
  /** shop (来自商家) open (来自开放平台) */
  from: string;
  /** 用户名称 */
  username: string;
}

/** 验证码信息 */
export interface CaptchaInfo {
  /** 验证码缓存key */
  key: string;
  /** 验证码图片Base64字符串 */
  img: string;
}
/** 登录页返回信息 */
export interface loginPageConfigResult {
  /** 登录页图片 */
  image: string;
}

/** 登录选择平台表单数据 */
export interface AppFormData {
  /** 用户名 */
  username: string;
}

/** 登录选择平台响应 */
export interface AppListResult {
  /** 创建平台列表消息 */
  appList: AppListInfo[];
  /** 创建平台列表数量 */
  createCount: number;
}

/** 登录选择平台信息 */
export interface AppListInfo {
  /** app名称 */
  appName: string;
  /** 平台名称 */
  companyName: string;
  /** 创建名称 */
  createName: string;
  /** 创建用户名 */
  createUsername: string;
  /** 创建时间 */
  createdAt: string;
  /** 创建ID */
  oPid: number;
  /** 创建角色 */
  roleType: number;
  /** 创建状态-1不通过  0审核中  1已通过 */
  status: number;
}

/** 关联平台平台响应 */
export interface RelateShopResult {
  /** 已关联平台列表 */
  shopList: RelateShopInfo[];
}

/** 登录选择平台信息 */
export interface RelateShopInfo {
  /** app名称 */
  companyId: string;
  /** 平台名称 */
  companyName: string;
  /** 创建名称 */
  expireTime: string;
}

/** 创建APP表单信息 */
export interface createAppFormData {
  /** app名称 */
  appName: string;
  /** 平台名称 */
  companyId: string;
  /** 用户名 */
  username: string;
}
/** 选择app应用 */
export interface selectAppFormData {
  /** appID */
  oPid: number;
  /** 用户名 */
  username: string;
}
/** 重置密码参数 */
export interface sendCodeByForgetFormData {
  /** 验证码 */
  captcha: string;
  /** 验证码key */
  captchaKey: string;
}
/** 修改密码参数 */
export interface resetPasswordFormData {
  /** 密码 */
  password: string;
  /** 确认密码 */
  confirmPwd: string;
  /** 手机验证码 */
  code: string;
  /** 图片验证码 */
  captcha: string;
  /** 图片验证key */
  captchaKey: string;
}
